package cl.duocap.refaxion.view.bean;

import java.io.Serializable;

import java.text.SimpleDateFormat;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;

import cl.duocap.refaxion.dto.ServicioDTO;
import cl.duocap.refaxion.servicios.ServicioService;

@ManagedBean(name="formServicioBean")
@SessionScoped

public class FormServicioBean implements Serializable {

	private static final long serialVersionUID = 1L;
	private ServicioDTO servicioNuevo = new ServicioDTO();
	private List<ServicioDTO> listaServicioObtenida;
	private Map<String,Integer> listaServicioCombo;
	
	@PostConstruct
	public void iniciar(){
		if(FacesContext.getCurrentInstance().isPostback()){
			return;
		}
		
		ServicioService servicio = new ServicioService();
		setListaServicioObtenida(servicio.obtenerServicios());
		
		listaServicioCombo = new LinkedHashMap<String, Integer>();
		for (ServicioDTO t : listaServicioObtenida) {
			listaServicioCombo.put(t.getServicioDescripcion(), t.getIdServicio());
		}
		//servicioNuevo = null;		
	}
	
	public FormServicioBean() {
		super();
	}
	
	




	public ServicioDTO getServicioNuevo() {
		return servicioNuevo;
	}






	public void setServicioNuevo(ServicioDTO servicioNuevo) {
		this.servicioNuevo = servicioNuevo;
	}






	public List<ServicioDTO> getListaServicioObtenida() {
		return listaServicioObtenida;
	}






	public void setListaServicioObtenida(List<ServicioDTO> listaServicioObtenida) {
		this.listaServicioObtenida = listaServicioObtenida;
	}






	public Map<String, Integer> getListaServicioCombo() {
		return listaServicioCombo;
	}






	public void setListaServicioCombo(Map<String, Integer> listaServicioCombo) {
		this.listaServicioCombo = listaServicioCombo;
	}






	public static long getSerialversionuid() {
		return serialVersionUID;
	}


	
	public String registrarServicioNuevo(){
		
		SimpleDateFormat dateformatJava = new SimpleDateFormat("dd-MM-yyyy");
		servicioNuevo.setFechaCreacion(dateformatJava.format(servicioNuevo.getFechaIngresoRecibir()));
		
		ServicioService servicioIngresar = new ServicioService();
		if(servicioIngresar.registrarServicioNuevo(servicioNuevo)){
			return "mainServicio.xhtml?faces-redirect=true";
		}else{
			return "formServicio.xhtml?faces-redirect=true";
		}
		
	}
	
	
}
